基于FPGA的多路光電編碼器數(shù)據(jù)采集系統(tǒng)
2006/6/26 9:12:00
1.哈爾濱工業(yè)大學(xué)自動(dòng)化測(cè)試與控制系 2.哈爾濱師范大學(xué)物理系 [摘 要]:介紹了一種基于現(xiàn)場(chǎng)可編程門陣列(FPGA)的多路光電編碼器數(shù)據(jù)采集系統(tǒng),包括其功能、原理、軟件編程和硬件實(shí)現(xiàn)電路。描述了該電路的4個(gè)主要功能:四倍頻細(xì)分、辨向、計(jì)數(shù)及串行通訊。根據(jù)波形的跳沿實(shí)現(xiàn)四倍頻細(xì)分;通過(guò)對(duì)波形相位的分析,采用基于相位變化的設(shè)計(jì)原理實(shí)現(xiàn)辨向。整個(gè)系統(tǒng)在QuartusⅡ軟件環(huán)境下實(shí)現(xiàn)編程,應(yīng)用Altera公司的EPFl0K20TCl44-3型芯片作為硬件載體,角度分辨力可達(dá)廣1。最后,給出了詳細(xì)的編程和仿真波形。 0 引 言 現(xiàn)今,光電編碼器被越來(lái)越多地用于角度的測(cè)量,由于它在測(cè)量角度方面的優(yōu)越性,已成為一種重要的角度傳感器,本設(shè)計(jì)中的角度傳感器是采用光電編碼器來(lái)實(shí)現(xiàn)的。以往對(duì)單路角度傳感器(光電編碼器)數(shù)據(jù)信號(hào)進(jìn)行四倍頻以及辨向處理時(shí),多采用門級(jí)電路搭建的電路板,單片機(jī)和FPGA編程來(lái)實(shí)現(xiàn)。其中,使用電路板或單片機(jī)的方法通用性差、編譯復(fù)雜、電路板龐大、而且,響應(yīng)其他事件的實(shí)時(shí)性變差,不適合用于運(yùn)算速度快,且多路輸入的數(shù)據(jù)采集計(jì)算任務(wù)。隨著電子設(shè)計(jì)技術(shù)的飛速發(fā)展,用戶現(xiàn)場(chǎng)可編程門陣列(FPGA)的復(fù)雜程度越來(lái)越高,其所具備的功能也越來(lái)越多,芯片也向小型化發(fā)展,逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的理想首選。FPGA/CPLD既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點(diǎn)、又克服了普通ASIC設(shè)計(jì)周期長(zhǎng)、投資大、靈活性差的缺點(diǎn)。FPGA的集成度很高,可完成極其復(fù)雜的時(shí)序和組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計(jì)領(lǐng)域。 1 方案設(shè)計(jì) 本系統(tǒng)是基于FPGA的數(shù)據(jù)采集電路,其多路輸入信號(hào)來(lái)自6個(gè)高精度角度傳感器——光電編碼器。每個(gè)角度傳感器均分別輸出兩路周期相同、相位差為90°的方波信號(hào)以及一個(gè)零位信號(hào),設(shè)其中一個(gè)角度傳感器輸出的方波信號(hào)為A和B,零位信號(hào)為Z。當(dāng)需要對(duì)計(jì)數(shù)器進(jìn)行正計(jì)數(shù)時(shí),A信號(hào)的上升沿及下降沿均超前B信號(hào)1/4周期;反之,當(dāng)需要對(duì)計(jì)數(shù)器進(jìn)行逆計(jì)數(shù)時(shí),A信號(hào)的上升沿及下降沿均滯后B信號(hào)1/4周期。根據(jù)A信號(hào)相對(duì)于B信號(hào)的超前與滯后,計(jì)數(shù)器即可相應(yīng)地做出加計(jì)數(shù)或減計(jì)數(shù)的判斷。 圖1給出了角度傳感器有信號(hào)輸入時(shí)A,B信號(hào)的變化情況。圖中,前半部分為正計(jì)數(shù),后半部分為反計(jì)數(shù)。根據(jù)接收到的輸入信號(hào)相位差和A,B信號(hào)變化的周期數(shù)來(lái)使用計(jì)數(shù)器進(jìn)行計(jì)數(shù),就可以測(cè)算出角度傳感器傳來(lái)的數(shù)據(jù)的具體信息。 本文中,數(shù)據(jù)采集系統(tǒng)要完成的主要任務(wù)為:利用PP-GA芯片完成六路角度傳感器信號(hào)處理、四倍頻及判向功能,設(shè)計(jì)24位計(jì)數(shù)器,實(shí)現(xiàn)數(shù)據(jù)的鎖存、清零以及數(shù)據(jù)傳輸,系統(tǒng)功能框圖如圖2所示 圖2 系統(tǒng)功能框圖 圖中,A1~A6,Bl~B6為六路角度傳感器輸出的相位差為90°的方波信號(hào)、Z1~Z6為零位信號(hào)、數(shù)據(jù)為串行輸出、OE為使能信號(hào),控制鎖存器存儲(chǔ)數(shù)據(jù)和輸出數(shù)據(jù)。 本設(shè)計(jì)中,角度傳感器提供輸入信號(hào),其精度要求高,若對(duì)角度的測(cè)量要求分辯力到1″甚至0.1″,則信號(hào)頻率相對(duì)較高。根據(jù)設(shè)計(jì)要求,估算整個(gè)電路所需要的管腳和宏單元的個(gè)數(shù),以及以后系統(tǒng)的可升級(jí)空間,本設(shè)計(jì)選用芯片EPFIOK20TCl44-3。它是Altera公司FLEX1OK系列產(chǎn)品之一,是一種嵌入式可編程邏輯器件,采用CMOSSRAM制造工藝,使用SRAM來(lái)存儲(chǔ)編程數(shù)據(jù),具有在系統(tǒng)中可編程特性。EPFl0K20TCl44—3具有高密度、高速度、低功耗等特點(diǎn)。芯片內(nèi)含有專用進(jìn)位鏈,級(jí)聯(lián)鏈以及快速通道,故其互連方式十分靈活。 2具體電路設(shè)計(jì) 本系統(tǒng)的主要功能通過(guò)Altera公司Quartus II軟件系統(tǒng)提供的集成化文本編輯程序?qū)崿F(xiàn),即硬件描述語(yǔ)言輸入方式。該方式適合于輸入和編輯諸如VHDL,Verilog HDL,Altera公司的AHDL等硬件描述語(yǔ)言的設(shè)計(jì)輸入文件。硬件描述語(yǔ)言輸入方式的特點(diǎn)是效率較高、結(jié)果也較容易仿真、信號(hào)觀察也比較方便,而且,在不同的設(shè)計(jì)輸入庫(kù)之間轉(zhuǎn)換非常方便,下面介紹系統(tǒng)主要電路的設(shè)計(jì)。 2.1 實(shí)現(xiàn)四倍頻、辨向和計(jì)數(shù) 以一路角度傳感器所發(fā)出的方波信號(hào)為例,如圖1所示,通過(guò)對(duì)A和B信號(hào)的上升沿和下降沿進(jìn)行計(jì)數(shù)實(shí)現(xiàn)四頻;并通過(guò)在每個(gè)跳變沿判斷A與B的電平高低來(lái)實(shí)現(xiàn)辨向,真值表如表1,表2所示。 表1 A信號(hào)跳變真值表 表2 B信號(hào)跳變真值表 由表1、表2可知,當(dāng)信號(hào)A和B發(fā)生跳變時(shí),對(duì)A和B進(jìn)行異或邏輯運(yùn)算,即可判斷對(duì)計(jì)數(shù)器進(jìn)行加操作還是減操作。流程圖如圖3所示。 圖3 辨向與計(jì)數(shù)流程圖 2.2 數(shù)據(jù)鎖存 方波信號(hào)經(jīng)過(guò)四倍頻并計(jì)數(shù)后所得到的6組數(shù)據(jù),當(dāng)需要向上位機(jī)傳輸時(shí),因?yàn)閮?nèi)部各計(jì)數(shù)單元工作屬于動(dòng)態(tài)過(guò)程,因此,在向外部傳輸數(shù)據(jù)時(shí),需先將6組數(shù)據(jù)分別存人6個(gè)鎖存器中再讀取數(shù)據(jù),以保證讀出穩(wěn)定的數(shù)據(jù)。在本設(shè)計(jì)中,鎖存器是由VHDL語(yǔ)言描述的同步鎖存器。所謂同步鎖存器指的是復(fù)位和加載功能全部與時(shí)鐘同步,復(fù)位端的優(yōu)先級(jí)較高。在數(shù)字系統(tǒng)設(shè)計(jì)時(shí),采用完全同步的鎖存器,可以避免時(shí)序錯(cuò)誤。 2.3 數(shù)據(jù)傳輸 串行輸出口采用標(biāo)準(zhǔn)的RS—232協(xié)議,6個(gè)鎖存器輸出的數(shù)據(jù)將先存人FIFO(先進(jìn)先出寄存器),然后,通過(guò)串口將數(shù)據(jù)發(fā)送到PC。 數(shù)據(jù)串行輸出如圖4所示。 串行輸出的主要參數(shù)的選擇:波特率為9600bit/s,8位有效位、無(wú)奇偶校驗(yàn)位、1位停止位。串行通信中,必須有時(shí)鐘脈沖信號(hào)對(duì)所傳送的數(shù)據(jù)進(jìn)行定位和同步控制,設(shè)計(jì)中,采用的時(shí)鐘頻率時(shí)波特率的2倍(19200bit/s)。發(fā)送過(guò)程:串口模塊初始狀態(tài)是等待狀態(tài),接收到觸發(fā)信號(hào)fifo-rd則進(jìn)入發(fā)送過(guò)程,先發(fā)送起始位,再發(fā)送8位比特?cái)?shù),每位寬度為2個(gè)周期,當(dāng)一個(gè)字節(jié)發(fā)送完畢后,發(fā)送一個(gè)停止位,回到等待狀態(tài)。 3 調(diào)試與仿真 如圖5所示,countl~count6為六路角度傳感器輸入信號(hào)經(jīng)過(guò)四倍頻、辨向、計(jì)數(shù)后的仿真波形。Zl~Z6為角度傳感器輸入的零位信號(hào),OE為輸出使能信號(hào)。其中,第二路仿真角度傳感器反向旋轉(zhuǎn)的過(guò)程,所以,A2信號(hào)滯后B2信號(hào)1/4周期,count2計(jì)數(shù)器為負(fù)值。本系統(tǒng)仿真中使用的方波頻率為19.1MHz,而所使用的角度傳感器每旋轉(zhuǎn)一周輸出的方波個(gè)數(shù)為1 296000個(gè),按照每秒旋轉(zhuǎn)一周計(jì)算,方波信號(hào)頻率為1.2MHz,仿真信號(hào)足要求。 圖5 輸出仿真波形圖 4 結(jié) 論 本設(shè)計(jì)經(jīng)過(guò)仿真、編譯實(shí)現(xiàn)后,將代碼下載至EPC1441可編程配置芯片,屬于主動(dòng)配置模式。在接口模塊上電后,EPC1441自動(dòng)對(duì)EPFl0K20TCl44-3芯片進(jìn)行配置。該芯片成功地完成了對(duì)六自由度坐標(biāo)測(cè)量系統(tǒng)輸出信號(hào)的處理,性能穩(wěn)定可靠。如果在此設(shè)計(jì)的基礎(chǔ)上載譯碼驅(qū)動(dòng)等外圍電路,即可直接與PC機(jī)連接,或者加上顯示電路單獨(dú)使用。
提交
查看更多評(píng)論
其他資訊
智光節(jié)能內(nèi)蒙古阿拉善左旗瀛海建材余熱發(fā)電機(jī)組首次啟動(dòng)成功
智光電氣臺(tái)州電廠給水泵系統(tǒng)節(jié)能改造項(xiàng)目成功投運(yùn)
智光節(jié)能榮登2014年度全國(guó)節(jié)能服務(wù)公司百?gòu)?qiáng)榜第五位
索引程序編程凸輪表
奧越信300系列PLC手冊(cè)